package com.sunwayhorizo.health.business.registries.organization.query;

import java.util.List;

import javax.ejb.Local;

import com.sunwayhorizo.health.hl7.common.Hl7Exception;
import com.sunwayhorizo.health.hl7.rim.Organization;
import com.sunwayhorizo.health.hl7.rim.Role;

@Local
public interface OrganizationQueryLocal
{

    /**
     * 根据实体id查找机构实体扮演的结构角色
     * @param entyId 机构RIM 实体id
     * @return Role
     * @throws Hl7Exception
     */
    public Role findRoleByEntityId(String entyId) throws Hl7Exception;
    
    /**
     * 当机构名称 机构编码为空时查询出所有的机构角色
     * @param orgName 机构名称
     * @param orgCode 机构编码
     * @return
     * @throws Hl7Exception
     */
    public List<Role> findOrgRoleList(String orgName,String orgCode) throws Hl7Exception;
    
    /**
     * 查询出所有的机构实体
     * @return
     * @throws Hl7Exception
     */
    public List<Organization> findOrganizationList() throws Hl7Exception;
    
    /**
     * 根据机构能查到对应的科室，查到为true,否为false
     * @param orgIds 机构 RIM 实体id
     * @return boolean
     * @throws Hl7Exception
     */
    @SuppressWarnings({ "rawtypes"})
    public boolean findDepartByOrgIds(List orgIds) throws Hl7Exception;

    /**
     * 根据机构编码 查询机构角色
     * @param code 机构编码
     * @return Role
     * @throws Hl7Exception
     */
    public Role findOrgRoleByCode(String code) throws Hl7Exception;

    
    /**
     * 根据机构名称得到机构实体
     * @param orgName 机构名称
     * @return Organization
     * @throws Hl7Exception
     */
    public Organization findOrganizationByOrgName(String orgName) throws Hl7Exception;
}
